package principal.model;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import principal.model.vos.ErrorUserException;

/**
* Clase que gestiona la seguridad para el ingreso de los usuarios al sistema
* 
* @author Manuel
*/
public class SecurityUsers{
	//Lista que contiene los usuarios validos
	//private static HashMap<String, String> userList	= new HashMap<String, String>();
	private static HashMap userList	= new HashMap();
	static{
		userList.put("manuel", "manuel");
		userList.put("hugo", "hugo");
		userList.put("zuri", "zuri");
		userList.put("jose", "jose");
		userList.put("anzures", "anzures");
	}
	
	public static void addUser(String user, String pass, String type){
		userList.put(user, pass);
		userType.put(user, type);
	}
	
	public static void removeAll(){
		userList.clear();
		userType.clear();
	}
	
	public static HashMap getUsers(){
		return userList;
	}
	
	//Lista que contiene los privilegios de los usuarios validos
	//private static HashMap<String, String> userType	= new HashMap<String, String>();
	private static HashMap userType	= new HashMap();
	static{
		userType.put("manuel", "admin");
		userType.put("hugo", "admin");
		userType.put("zuri", "sale");
		userType.put("jose", "sale");
		userType.put("anzures", "sale");
	}
	
	/**
	 * Metodo que valida si una cuenta de usuario es correcta
	 * @return true si el usuario es valido, false en caso contrario
	 */
	public static String type(String userName){

		//Roos2
		//		return userType.get(userName);
		return (String) userType.get(userName);
	}
	
	/**
	 * Metodo que valida si una cuenta de usuario es correcta
	 * @return true si el usuario es valido, false en caso contrario
	 */	
	public static boolean isValidUser(String userName, String password)throws ErrorUserException{
		boolean isValidUser	= false;		
		String pwd		= "";
		boolean isIn=false;

		Iterator it = userList.entrySet().iterator();
		while (it.hasNext()) {
			Map.Entry e = (Map.Entry)it.next();
			if(e.getKey()==userName.trim())
				isIn=true;
			System.out.println("userName"+userName+":"+e.getKey() + ":" + e.getValue());
		}
		//Se valida si en el HashMap con la lista de usuarios existe en valor para el nombre de usuario
//		if ( userList.containsValue(userName)){
		//if(isIn){
			System.out.println("entro "+userName);
			//Roos2
//			pwd	= userList.get(userName);
			pwd	= (String)userList.get(userName);
			
			//Validamos el password
			if( pwd.compareTo(password) == 0 ){
				//El password es valido
				isValidUser	= true;				
			}
//		}else{
//			throw new ErrorUserException();
//		}		
//		if( !isValidUser ){
//			//Si el usuario no es correcto lanzamos la exception
//			throw new ErrorUserException();
//		}
		return isValidUser;
	}
	
}
